// pages/mine/editStaff/index.js
import { CommonModel } from "../../../api/api-common/commonModel.js"
import { MineModel } from "../../../api/api-mine/mineModel.js"
import Toast from '@vant/weapp/toast/toast';
const mineModel = new MineModel()
const commonModel = new CommonModel()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    backFlag: false,
    id: "", // 员工id
    name: "", // 登陆账号
    nickName: "", // 员工姓名
    mobile: "", // 手机号
    isTeach: true, // 是否授课，默认true
    sexDatas: [], // 性别集合
    gender: "1", // "0" 男； "1": 女；"2": 未知
    selectRoleIds: [], // 选中的角色
    roleDatas: [], // 角色
    selectIsJob: true, // 选中的员工是否在职
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {

    if (options.id == undefined || options.id == "") {
      // 添加员工
      wx.setNavigationBarTitle({
        title: "添加员工"
      })
    } else {
      wx.setNavigationBarTitle({
        title: "修改员工"
      })
    }
    // 获取性别
    await this.getSexType()
    // 获取信息
    this.setData({
      id: options.id,
      selectIsJob: options.isJob
    })
    await this.getInfos(options.id)

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  // 获取性别
  getSexType() {
    commonModel.getDictTypeDataApi({ dictType: 'sys_user_sex' }).then(res => {
      this.setData({
        sexDatas: res
      })
    })
  },

  // 获取信息
  async getInfos(id) {
    mineModel.getInfosApi({ id: id }).then(res => {
      this.setData({
        roleDatas: res.roles
      })
      if (res.info) {
        this.setData({
          name: res.info.name,
          nickName: res.info.nickName,
          mobile: res.info.mobile,
          gender: String(res.info.gender),
          isTeach: res.info.isTeach,
          selectRoleIds: res.roleIds
        })
      }
    })
  },

  // 切换授课
  changeIsTeach({ detail }) {
    this.setData({
      isTeach: detail
    })
  },


  // 选中角色
  selectCell(e) {
    const query = e.currentTarget.dataset.query;

    const roles = this.data.selectRoleIds;
    if (roles.indexOf(query.roleId) != -1) {
      // 去掉选中
      let index = roles.indexOf(query.roleId);
      if (index !== -1) {
        roles.splice(index, 1);
      }
    } else {
      roles.push(query.roleId);
    }

    this.setData({
      selectRoleIds: roles
    })
  },

  // 保存
  submitStaff() {
    // 新增保存
    mineModel.addStaffApi({
      id: this.data.id,
      name: this.data.name,
      nickName: this.data.nickName,
      mobile: this.data.mobile,
      gender: this.data.gender,
      isTeach: this.data.isTeach,
      isJob: 1,
      roleIds: this.data.selectRoleIds.join(",")
    }).then(res => {
      Toast(res);
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 注销时，如果有返回标识，则需要修改上一页的栈
    // if (this.data.backFlag) {
    //   var pages = getCurrentPages();
    //   var prevPage = pages[pages.length - 2]; // 上一个页面
    //   prevPage.searchStaffTap();
    // }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})